Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Zapis autora do cfg!


Rekomendowane odpowiedzi

Opublikowano
Hej,

ostatnio z nudów zaczłem przerabiać plugin TNTRun i chce teraz zrobić cos takiego ze jeśli wpisze /trsetup (NazwaAreny) author (NazwaAutora) to się zapisuje do cfg!

Kod klasy odpowiadającej za konfiguracje areny:

else if (args.length == 3 && args[1].equalsIgnoreCase("author"))
{
Arena arena = plugin.pdata.getArenaByName(args[0]);
if (arena != null)
{
if (arena.isArenaEnabled())
{
sender.sendMessage("Pierw wylacz arene");
return true;
}
arena.setArenaAuthor(args[3]);
sender.sendMessage("Autor zostal ustawiony");
} else
{
sender.sendMessage("Arena nie istnieje");
}
return true;
}


Kod klasy która zapisuje wszystkie dane do cfg:


package tntrun.arena;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;

import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;

import tntrun.TNTRun;
import tntrun.messages.Messages;

public class Arena {

protected TNTRun plugin;
public GameHandler arenagh;
public PlayerHandler arenaph;
public Arena(String name, TNTRun plugin)
{
this.arenaname = name;
this.plugin = plugin;
arenagh = new GameHandler(plugin,this);
arenaph = new PlayerHandler(plugin,this);
arenafile = new File(plugin.getDataFolder()+File.separator+"areny"+File.separator+arenaname+".yml");
plugin.pdata.putArenaInHashMap(this);
}

private boolean enabled = false;
private boolean starting = false;
private boolean running = false;
private boolean regenerating = false;

private String arenaname;
public String getArenaName()
{
return arenaname;
}
private String world;
public World getWorld()
{
return Bukkit.getWorld(world);
}
private Vector p1 = null;
public Vector getP1()
{
return p1;
}
private Vector p2 = null;
public Vector getP2()
{
return p2;
}
private HashSet<GameLevel> gamelevels = new HashSet<GameLevel>();
public HashSet<GameLevel> getGameLevels()
{
return gamelevels;
}
private int gameleveldestroydelay = 2;
public int getGameLevelDestroyDelay()
{
return gameleveldestroydelay;
}
private LoseLevel loselevel = new LoseLevel();
public LoseLevel getLoseLevel()
{
return loselevel;
}
private Vector spawnpoint = null;
public Location getSpawnPoint()
{
Location spawn = new Location(getWorld(),spawnpoint.getX(),spawnpoint.getY(),spawnpoint.getZ());
return spawn;
}

private int maxPlayers = 6;
public int getMaxPlayers()
{
return maxPlayers;
}
private int minPlayers = 2;
public int getMinPlayers()
{
return minPlayers;
}
private double votesPercent = 0.75;
public double getVotePercent()
{
return votesPercent;
}
private int timelimit = 180;
public int getTimeLimit()
{
return timelimit;
}
private int countdown = 10;
public int getCountdown()
{
return countdown;
}
private Rewards rewards = new Rewards();
public Rewards getRewards()
{
return rewards;
}
private String author;
public String getArenaAuthor(String author)
{
return author;
}


//arena status handler
public boolean isArenaEnabled()
{
return enabled;
}
public boolean enableArena()
{
if (isArenaConfigured().equalsIgnoreCase("yes"))
{
enabled = true;
arenagh.startArenaAntiLeaveHandler();
plugin.signEditor.modifySigns(getArenaName());
return true;
}
return false;
}
public void disableArena()
{
enabled = false;
//drop players
for (Player player : Bukkit.getOnlinePlayers())
{
if (plugin.pdata.getArenaPlayers(this).contains(player.getName()))
{
arenaph.leavePlayer(player, Messages.arenadisabling,"");
}
}
//stop arena
arenagh.stopArena();
//stop countdown
arenagh.stopArenaCountdown();
//stop antileave handler
arenagh.stopArenaAntiLeaveHandler();
//regen gamelevels
for (GameLevel gl : gamelevels)
{
gl.regen();
}
//modify signs
plugin.signEditor.modifySigns(getArenaName());
}
public boolean isArenaStarting()
{
return starting;
}
protected void setStarting(boolean starting)
{
this.starting = starting;
}
public boolean isArenaRunning()
{
return running;
}
protected void setRunning(boolean running)
{
this.running = running;
}
public boolean isArenaRegenerating()
{
return regenerating;
}
protected void setRegenerating(boolean regenerating)
{
this.regenerating = regenerating;
}

//arena structure handler
//main
public boolean isInArenaBounds(Location loc)
{
if (loc.toVector().isInAABB(p1, p2)) {return true;}
return false;
}
public String isArenaConfigured()
{
if (p1 == null || p2==null || world == null) {return "Nie ustawiłes granic areny!";}
if (gamelevels.size() == 0) {return "Poziomy arena nie zostaly jeszcze ustawione!";}
if (!loselevel.isConfigured()) {return "Poziom przegranych nie zostal ustawiony";}
if (spawnpoint == null) {return "Spawn na arenie nie zostal ustawion";}
return "yes";
}
public void setArenaPoints(Location loc1, Location loc2)
{
this.world = loc1.getWorld().getName();
this.p1 = loc1.toVector();
this.p2 = loc2.toVector();
}
public boolean setGameLevel(String glname, Location loc1, Location loc2)
{
if (isInArenaBounds(loc1) && isInArenaBounds(loc2))
{
GameLevel gl = getGameLevelByName(glname);
if (gl == null)
{
gl = new GameLevel(glname);
gamelevels.add(gl);
}
gl.setGameLocation(loc1, loc2);
return true;
}
return false;
}
private GameLevel getGameLevelByName(String name)
{
for (GameLevel gl : gamelevels)
{
if (gl.getGameLevelName().equals(name))
{
return gl;
}
}
return null;
}
public void setGameLevelDestroyDelay(int delay)
{
gameleveldestroydelay = delay;
}
public boolean setLooseLevel(Location loc1, Location loc2)
{
if (isInArenaBounds(loc1) && isInArenaBounds(loc2))
{
loselevel.setLooseLocation(loc1, loc2);
return true;
}
return false;
}
public boolean setSpawnPoint(Location loc)
{
if (isInArenaBounds(loc))
{
spawnpoint = loc.toVector();
return true;
}
return false;
}
//additional
public void setMaxPlayers(int maxplayers)
{
this.maxPlayers = maxplayers;
}
public void setMinPlayers(int minplayers)
{
this.minPlayers = minplayers;
}
public void setVotePercent(double votepercent)
{
this.votesPercent = votepercent;
}
public void setTimeLimit(int timelimit)
{
this.timelimit = timelimit;
}
public void setCountdown(int countdown)
{
this.countdown = countdown;
}
public void setRewards(ItemStack[] rewards)
{
this.rewards.setRewards(rewards);
}
public void setRewards(int money)
{
this.rewards.setRewards(money);
}
public void setArenaAuthor(String author) {
this.author = author;
}


//arena config handlers
private File arenafile;
public void saveToConfig()
{
FileConfiguration config = new YamlConfiguration();
//save arena bounds
try {
config.set("world", world);
config.set("p1", p1);
config.set("p2", p2);
} catch (Exception e) {}
//save gamelevels
for (GameLevel gl : gamelevels)
{
try {
gl.saveToConfig(config);
} catch (Exception e) {}
}
//save gamelevel destroy delay
config.set("gameleveldestroydelay",gameleveldestroydelay);
//save looselevel
config.set("author", author);
try {
loselevel.saveToConfig(config);
} catch (Exception e) {}
//save spawnpoint
try {
config.set("spawnpoint", spawnpoint);
} catch (Exception e) {}
//save maxplayers
config.set("maxPlayers", maxPlayers);
//save minplayers
config.set("minPlayers", minPlayers);
//save vote percent
config.set("votePercent", votesPercent);
//save timelimit
config.set("timelimit", timelimit);
//save countdown
config.set("countdown", countdown);
//save rewards
rewards.saveToConfig(config);
try {
config.save(arenafile);
} catch (IOException e) {
e.printStackTrace();
}
}
public void loadFromConfig()
{
FileConfiguration config = YamlConfiguration.loadConfiguration(arenafile);
//load arena world location
world = config.getString("world", null);
//load arena bounds
p1 = config.getVector("p1", null);
p2 = config.getVector("p2", null);
//load gamelevels
ConfigurationSection cs = config.getConfigurationSection("gamelevels");
if (cs != null)
{
for (String glname : cs.getKeys(false))
{
try{
GameLevel gl = new GameLevel(glname);
gl.loadFromConfig(config);
gamelevels.add(gl);
} catch (Exception e) {}
}
}
//load gamelevel destroy delay
gameleveldestroydelay = config.getInt("gameleveldestroydelay",gameleveldestroydelay);
author = config.getString("author", author);
//load looselevel
loselevel.loadFromConfig(config);
//load spawnpoint
spawnpoint = config.getVector("spawnpoint", null);
//load maxplayers
maxPlayers = config.getInt("maxPlayers",maxPlayers);
//load minplayers
minPlayers = config.getInt("minPlayers",minPlayers);
//load vote percent
votesPercent = config.getDouble("votePercent", votesPercent);
//load timelimit
timelimit = config.getInt("timelimit",timelimit);
//load countdown
countdown = config.getInt("countdown", countdown);
//load rewards
rewards.loadFromConfig(config);
//enable if fully configured
enableArena();
}

}


I teraz chce wykonać coś takiego że jeśli wpisze /trsetup (nazwaareny) author (Autor) to pobiera mi z tej komendy args[3], czyli autora. Potem zapisuje go w cfg danej areny !

Za pomoc daje lajki !!!

Pozdrawiam!

Opublikowano

... To nie jest klasa od zapisywania do configu, to jest klasa od areny z opcja zapisu do configu

 

A co do pytania... wystarczy ze na końcu komendy użyjesz własnie tej opcji zapisu, czyli dodasz linijke

arena.saveToConfig();

 

 

Zanim zaczniesz przerabiac pluginy, naucz się podstaw :D

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...